function addEvent(obj,evtType,func,cap){
     cap=cap||false;
         if(obj.addEventListener){
             obj.addEventListener(evtType,func,cap);
                 return true;
         }else if(obj.attachEvent){
         if(cap){
                 obj.setCapture();
                 return true;
             }else{
                     return obj.attachEvent("on" + evtType,func);
                 }
         }else{
                 return false;
     }
 }
 function getPageScroll(){
     var xScroll,yScroll;
         if (self.pageXOffset) {
                 xScroll = self.pageXOffset;
         } else if (document.documentElement && document.documentElement.scrollLeft){
                 xScroll = document.documentElement.scrollLeft;
         } else if (document.body) {
                 xScroll = document.body.scrollLeft;
         }
         if (self.pageYOffset) {
                 yScroll = self.pageYOffset;
         } else if (document.documentElement && document.documentElement.scrollTop){
                 yScroll = document.documentElement.scrollTop;
         } else if (document.body) {
                 yScroll = document.body.scrollTop;
         }
         arrayPageScroll = new Array(xScroll,yScroll);
         return arrayPageScroll;
 }
 function GetPageSize(){
     var xScroll, yScroll;
     if (window.innerHeight && window.scrollMaxY) {        
        xScroll = document.body.scrollWidth;
         yScroll = window.innerHeight + window.scrollMaxY;
     } else if (document.body.scrollHeight > document.body.offsetHeight){
         xScroll = document.body.scrollWidth;
         yScroll = document.body.scrollHeight;
     } else {
         xScroll = document.body.offsetWidth;
         yScroll = document.body.offsetHeight;
     }
     var windowWidth, windowHeight;
     if (self.innerHeight) {
         windowWidth = self.innerWidth;
         windowHeight = self.innerHeight;
     } else if (document.documentElement && document.documentElement.clientHeight) {
         windowWidth = document.documentElement.clientWidth;
 
        windowHeight = document.documentElement.clientHeight;
     } else if (document.body) {
         windowWidth = document.body.clientWidth;
         windowHeight = document.body.clientHeight;
     }        
    if(yScroll < windowHeight){
         pageHeight = windowHeight;
     } else { 
        pageHeight = yScroll;
     }
     if(xScroll < windowWidth){        
        pageWidth = windowWidth;
     } else {
         pageWidth = xScroll;
     }
     arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
    return arrayPageSize;
 }

 var AdMoveConfig=new Object();
 AdMoveConfig.IsInitialized=false;
 AdMoveConfig.ScrollX=0;
 AdMoveConfig.ScrollY=0;
 AdMoveConfig.MoveWidth=0;
 AdMoveConfig.MoveHeight=0;
 AdMoveConfig.Resize=function(){
     var winsize=GetPageSize();
     AdMoveConfig.MoveWidth=winsize[2];
     AdMoveConfig.MoveHeight=winsize[3];
     AdMoveConfig.Scroll();
 }
 AdMoveConfig.Scroll=function(){
     var winscroll=getPageScroll();
     AdMoveConfig.ScrollX=winscroll[0];
     AdMoveConfig.ScrollY=winscroll[1];
 }
 addEvent(window,"resize",AdMoveConfig.Resize);
 addEvent(window,"scroll",AdMoveConfig.Scroll);
 function AdMove(id){
     if(!AdMoveConfig.IsInitialized){
         AdMoveConfig.Resize();
         AdMoveConfig.IsInitialized=true;
     }
     var obj=document.getElementById(id);
     obj.style.position="absolute";
     var W=AdMoveConfig.MoveWidth-obj.offsetWidth;
     var H=AdMoveConfig.MoveHeight-obj.offsetHeight;
     var x = W*Math.random(),y = H*Math.random();
     var rad=(Math.random()+1)*Math.PI/6;
     var kx=Math.sin(rad),ky=Math.cos(rad);
     var dirx = (Math.random()<0.5?1:-1), diry = (Math.random()<0.5?1:-1);
     var step = 1;
     var interval;
     this.SetLocation=function(vx,vy){x=vx;y=vy;}
     this.SetDirection=function(vx,vy){dirx=vx;diry=vy;}
     obj.CustomMethod=function(){
         obj.style.left = (x + AdMoveConfig.ScrollX) + "px";
         obj.style.top = (y + AdMoveConfig.ScrollY) + "px";
         rad=(Math.random()+1)*Math.PI/6;
         W=AdMoveConfig.MoveWidth-obj.offsetWidth;
         H=AdMoveConfig.MoveHeight-obj.offsetHeight;
         x = x + step*kx*dirx;
         if (x < 0){dirx = 1;x = 0;kx=Math.sin(rad);ky=Math.cos(rad);} 
        if (x > W){dirx = -1;x = W;kx=Math.sin(rad);ky=Math.cos(rad);}
         y = y + step*ky*diry;
         if (y < 0){diry = 1;y = 0;kx=Math.sin(rad);ky=Math.cos(rad);} 
        if (y > H){diry = -1;y = H;kx=Math.sin(rad);ky=Math.cos(rad);}
     }
     this.Run=function(){
         var delay = 10;
         interval=setInterval(obj.CustomMethod,delay);
         obj.onmouseover=function(){clearInterval(interval);}
         obj.onmouseout=function(){interval=setInterval(obj.CustomMethod, delay);}
     }
 }
    
